package com.trendytech.tds.util;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

import com.trendytech.tds.system.model.Mail;

public class MailUtil {

	protected final Log logger = LogFactory.getLog(getClass());

	public boolean send(Mail mail) {
		// 发送email
		HtmlEmail email = new HtmlEmail();
		try {
			// 这里是SMTP发送服务器的名字：163的如下："smtp.163.com"
			email.setHostName(Mail.HOST_NAME);
			// 一般默认为25
			email.setSmtpPort(Mail.SMTP_PORT);
			// 字符编码集的设置
			email.setCharset(Mail.ENCODEING);
			// 发送人的邮箱
			email.setFrom(Mail.SENDER, Mail.SENDER_NICKNAME);
			// 收件人的邮箱
			email.addTo(mail.getReceiver());
			// 如果需要认证信息的话，设置认证：用户名-密码。分别为发件人在邮件服务器上的注册名称和密码
			email.setAuthentication(Mail.SENDER_USERNAME, Mail.SENDER_PASSWORD);
			// 要发送的邮件主题
			email.setSubject(mail.getSubject());
			// 要发送的信息，由于使用了HtmlEmail，可以在邮件内容中使用HTML标签
			email.setMsg(mail.getMessage());
			// 发送
			email.send();
			if (logger.isDebugEnabled()) {
				logger.debug(Mail.SENDER + " has sent an email to " + mail.getReceiver());
			}
			return true;
		} catch (EmailException e) {
			e.printStackTrace();
			logger.error(Mail.SENDER + " failed to send an email to " + mail.getReceiver());
			return false;
		}
	}
}
